package com.ocom.company.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ocom.common.entity.company.EntityFlowConfig;
import com.ocom.common.request.company.GetFlowInstanceListRequest;
import com.ocom.common.vo.company.FlowInstanceInfoVo;
import com.ocom.common.vo.company.GetFlowInstanceListVo;

import java.util.List;

public interface FlowConfigService extends IService<EntityFlowConfig> {
    List<EntityFlowConfig> getFlowConfig(Long companyId,String flowCode, Integer deptType);
    EntityFlowConfig getFlowConfigByKeyword(Long companyId,String flowKeyword, Integer deptType);

    boolean save(Long companyId,EntityFlowConfig entityFlowConfig);

    boolean update(Long companyId,EntityFlowConfig entityFlowConfig);

    boolean remove(Long companyId,EntityFlowConfig entityFlowConfig);

    EntityFlowConfig getOne(Long companyId,EntityFlowConfig entityFlowConfig);

    EntityFlowConfig getInfoDefKey(Long companyId,String defKey);

    Page<GetFlowInstanceListVo> getFlowInstanceList(Long companyId, GetFlowInstanceListRequest getFlowInstanceListRequest);

    List<FlowInstanceInfoVo> flowInstanceInfoList(Long companyId, List<Integer> businessKeyList);
}
